package FornecedorForneceProduto;

import org.nakedobjects.extended.Cardinality;
import org.nakedobjects.extended.Entity;
import org.nakedobjects.extended.RelationshipAssociation;
import org.nakedobjects.extended.Way;
import org.nakedobjects.object.AbstractNakedObject;
import org.nakedobjects.object.Title;
import org.nakedobjects.object.collection.ExtendedInternalCollection;
import org.nakedobjects.object.value.TextString;

@Entity
public class Fornecedor extends AbstractNakedObject {

	private static final long serialVersionUID = 1L;

	private TextString nome = new TextString();

	private TextString cep = new TextString();

	@RelationshipAssociation(
			cardinality = Cardinality.ManyToMany, 
			relatedWith = Produto.class, 
			fieldRelatedName = "fornecedores", 
			way = Way.TwoWay
	)
	private final ExtendedInternalCollection produtos = new ExtendedInternalCollection(
			"Produtos", Produto.class, this);

	public Title title() {
		return getNome().title();
	}

	public ExtendedInternalCollection getProdutos() {
		return produtos;
	}

	public TextString getNome() {
		return nome;
	}

	public TextString getCep() {
		return cep;
	}
}
